//没有VirtualProgram的默认shaderlist
//前面0-10的脚本与shader22codes是一样的。
//shaderlist[11]
#version 460
#pragma vp_name VP Vertex Shader Main 

// Vertex stage globals:
int oe_terrain_vertexMarker; 
float oe_layer_opacity; 
float oe_rex_morphFactor; 
vec2 oe_layer_texc; 
vec2 oe_layer_texcParent; 
vec2 oe_normal_uv; 
vec3 oe_UpVectorView; 
vec3 oe_normal_binormal; 
vec3 vp_Normal; 
vec3 vp_VertexView; 
vec4 oe_layer_tilec; 
vec4 vp_Color; 
vec4 vp_Vertex; 

// Vertex stage outputs:
out VP_PerVertex { 
    flat int oe_terrain_vertexMarker; 
    float oe_layer_opacity; 
    float oe_rex_morphFactor; 
    vec2 oe_layer_texc; 
    vec2 oe_layer_texcParent; 
    vec2 oe_normal_uv; 
    vec3 oe_UpVectorView; 
    vec3 oe_normal_binormal; 
    vec3 vp_Normal; 
    vec3 vp_VertexView; 
    vec4 oe_layer_tilec; 
    vec4 vp_Color; 
    vec4 vp_Vertex; 
} vp_out; 

// Function declarations:
void oe_rex_init_model(inout vec4); 
void oe_rex_morph(inout vec4); 
void oe_rex_init_view(inout vec4); 
void oe_rex_applyElevation(inout vec4); 
void oe_rex_imageLayer_VS(inout vec4); 
void oe_rex_normalMapVS(inout vec4); 
void oe_ClipPlane_vs(inout vec4); 

void main(void) 
{ 
    vp_Vertex = gl_Vertex; 
    vp_Normal = gl_Normal; 
    vp_Color  = gl_Color; 
    oe_rex_init_model(vp_Vertex); 
    oe_rex_morph(vp_Vertex); 
    vp_Vertex = gl_ModelViewMatrix * vp_Vertex; 
    vp_Normal = normalize(gl_NormalMatrix * vp_Normal); 
    vp_VertexView = vp_Vertex.xyz;
    oe_rex_init_view(vp_Vertex); 
    oe_rex_applyElevation(vp_Vertex); 
    oe_rex_imageLayer_VS(vp_Vertex); 
    oe_rex_normalMapVS(vp_Vertex); 
    oe_ClipPlane_vs(vp_Vertex); 
    gl_Position = gl_ProjectionMatrix * vp_Vertex; 
    vp_out.oe_terrain_vertexMarker = oe_terrain_vertexMarker; 
    vp_out.oe_layer_opacity = oe_layer_opacity; 
    vp_out.oe_rex_morphFactor = oe_rex_morphFactor; 
    vp_out.oe_layer_texc = oe_layer_texc; 
    vp_out.oe_layer_texcParent = oe_layer_texcParent; 
    vp_out.oe_normal_uv = oe_normal_uv; 
    vp_out.oe_UpVectorView = oe_UpVectorView; 
    vp_out.oe_normal_binormal = oe_normal_binormal; 
    vp_out.vp_Normal = vp_Normal; 
    vp_out.vp_VertexView = vp_VertexView; 
    vp_out.oe_layer_tilec = oe_layer_tilec; 
    vp_out.vp_Color = vp_Color; 
    vp_out.vp_Vertex = vp_Vertex; 
} 
//shaderlist[13]
#version 460
#pragma vp_name VP Fragment Shader Main

// Fragment output
out vec4 vp_FragColor;

// Fragment stage inputs:
in VP_PerVertex { 
    flat int oe_terrain_vertexMarker; 
    float oe_layer_opacity; 
    float oe_rex_morphFactor; 
    vec2 oe_layer_texc; 
    vec2 oe_layer_texcParent; 
    vec2 oe_normal_uv; 
    vec3 oe_UpVectorView; 
    vec3 oe_normal_binormal; 
    vec3 vp_Normal; 
    vec3 vp_VertexView; 
    vec4 oe_layer_tilec; 
    vec4 vp_Color; 
    vec4 vp_Vertex; 
} vp_in; 

// Fragment stage globals:
int oe_terrain_vertexMarker;
float oe_layer_opacity;
float oe_rex_morphFactor;
vec2 oe_layer_texc;
vec2 oe_layer_texcParent;
vec2 oe_normal_uv;
vec3 oe_UpVectorView;
vec3 oe_normal_binormal;
vec3 vp_Normal;
vec3 vp_VertexView;
vec4 oe_layer_tilec;
vec4 vp_Color;
vec4 vp_Vertex;

// Function declarations:
void oe_pbr_init(inout vec4 color); 
void oe_rex_normalMapFS(inout vec4 color); 
void oe_rex_imageLayer_FS(inout vec4 color); 

void main(void) 
{ 
    oe_terrain_vertexMarker = vp_in.oe_terrain_vertexMarker; 
    oe_layer_opacity = vp_in.oe_layer_opacity; 
    oe_rex_morphFactor = vp_in.oe_rex_morphFactor; 
    oe_layer_texc = vp_in.oe_layer_texc; 
    oe_layer_texcParent = vp_in.oe_layer_texcParent; 
    oe_normal_uv = vp_in.oe_normal_uv; 
    oe_UpVectorView = vp_in.oe_UpVectorView; 
    oe_normal_binormal = vp_in.oe_normal_binormal; 
    vp_Normal = vp_in.vp_Normal; 
    vp_VertexView = vp_in.vp_VertexView; 
    oe_layer_tilec = vp_in.oe_layer_tilec; 
    vp_Color = vp_in.vp_Color; 
    vp_Vertex = vp_in.vp_Vertex; 
    vp_Normal = normalize(vp_Normal); 
    oe_pbr_init( vp_Color ); 
    oe_rex_normalMapFS( vp_Color ); 
    oe_rex_imageLayer_FS( vp_Color ); 
    vp_FragColor = vp_Color;
}
